package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 【请填写功能名称】对象 rent_device_link
 * 
 * @author ruoyi
 * @date 2020-12-27
 */
public class RentDeviceLink extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 租赁单id */
//    @Excel(name = "租赁单id")
    private Long rentId;
    /** 机器id */
//    @Excel(name = "机器id")
    private Long deviceId;
    /** 器材类型名称 */
    @Excel(name = "器材类型名称")
    private String typeName;
    /** 器材编号 */
    @Excel(name = "器材编号")
    private String deviceSerialNumber;
    /** 器材型号 */
    @Excel(name = "器材型号")
    private String modeName;
    /** 器材备注 */
    @Excel(name = "器材备注")
    private String deviceNote;

    /** 计划租赁开始日期时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划租赁开始日期时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planRentStartTime;

    /** 实际租赁开始日期时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际租赁开始日期时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualRentStartTime;

    /** 计划租赁结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划租赁结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planRentEndTime;

    /** 实际租赁结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际租赁结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualRentEndTime;

    /** 计划租赁天数 */
    @Excel(name = "计划租赁天数")
    private Integer planRentSpan;

    /** 实际租赁天数 */
    @Excel(name = "实际租赁天数")
    private Integer actualRentSpan;

    /** 备注 */
    @Excel(name = "备注")
    private String note;

    /** 有效性：0 无效 1 */
    @Excel(name = "有效性",readConverterExp="0=无效,1=有效")
    private Integer valid;
    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 出库单号 */
    @Excel(name = "出库单号")
    private String rentNumber;

    private Date planRentStartTimeStart;
    private Date planRentStartTimeEnd;

    private Date planRentEndTimeStart;
    private Date planRentEndTimeEnd;

    private Date actualRentStartTimeStart;
    private Date actualRentStartTimeEnd;

    private Date actualRentEndTimeStart;
    private Date actualRentEndTimeEnd;

    private Integer planRentSpanStart;
    private Integer planRentSpanEnd;

    private Integer actualRentSpanStart;
    private Integer actualRentSpanEnd;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setRentId(Long rentId) 
    {
        this.rentId = rentId;
    }

    public Long getRentId() 
    {
        return rentId;
    }
    public void setDeviceId(Long deviceId) 
    {
        this.deviceId = deviceId;
    }

    public Long getDeviceId() 
    {
        return deviceId;
    }
    public void setPlanRentStartTime(Date planRentStartTime) 
    {
        this.planRentStartTime = planRentStartTime;
    }

    public Date getPlanRentStartTime() 
    {
        return planRentStartTime;
    }
    public void setActualRentStartTime(Date actualRentStartTime) 
    {
        this.actualRentStartTime = actualRentStartTime;
    }

    public Date getActualRentStartTime() 
    {
        return actualRentStartTime;
    }
    public void setPlanRentEndTime(Date planRentEndTime) 
    {
        this.planRentEndTime = planRentEndTime;
    }

    public Date getPlanRentEndTime() 
    {
        return planRentEndTime;
    }
    public void setActualRentEndTime(Date actualRentEndTime) 
    {
        this.actualRentEndTime = actualRentEndTime;
    }

    public Date getActualRentEndTime() 
    {
        return actualRentEndTime;
    }
    public void setPlanRentSpan(Integer planRentSpan) {
        this.planRentSpan = planRentSpan;
    }

    public Integer getPlanRentSpan() 
    {
        return planRentSpan;
    }
    public void setActualRentSpan(Integer actualRentSpan) {
        this.actualRentSpan = actualRentSpan;
    }

    public Integer getActualRentSpan() 
    {
        return actualRentSpan;
    }
    public void setNote(String note) {
        if(!StringUtils.isEmpty(note)){
            this.note = note;
        }
    }

    public String getNote() 
    {
        return note;
    }
    public void setValid(Integer valid)
    {
        this.valid = valid;
    }

    public Integer getValid()
    {
        return valid;
    }

    public String getDeviceSerialNumber() {
        return deviceSerialNumber;
    }

    public void setDeviceSerialNumber(String deviceSerialNumber) {
        this.deviceSerialNumber = deviceSerialNumber;
    }

    public String getDeviceNote() {
        return deviceNote;
    }

    public void setDeviceNote(String deviceNote) {
        this.deviceNote = deviceNote;
    }

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public String getModeName() {
        return modeName;
    }

    public void setModeName(String modeName) {
        this.modeName = modeName;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getRentNumber() {
        return rentNumber;
    }

    public void setRentNumber(String rentNumber) {
        this.rentNumber = rentNumber;
    }

    public Date getPlanRentStartTimeStart() {
        return planRentStartTimeStart;
    }

    public void setPlanRentStartTimeStart(Date planRentStartTimeStart) {
        this.planRentStartTimeStart = planRentStartTimeStart;
    }

    public Date getPlanRentStartTimeEnd() {
        return planRentStartTimeEnd;
    }

    public void setPlanRentStartTimeEnd(Date planRentStartTimeEnd) {
        this.planRentStartTimeEnd = planRentStartTimeEnd;
    }

    public Date getPlanRentEndTimeStart() {
        return planRentEndTimeStart;
    }

    public void setPlanRentEndTimeStart(Date planRentEndTimeStart) {
        this.planRentEndTimeStart = planRentEndTimeStart;
    }

    public Date getPlanRentEndTimeEnd() {
        return planRentEndTimeEnd;
    }

    public void setPlanRentEndTimeEnd(Date planRentEndTimeEnd) {
        this.planRentEndTimeEnd = planRentEndTimeEnd;
    }

    public Date getActualRentStartTimeStart() {
        return actualRentStartTimeStart;
    }

    public void setActualRentStartTimeStart(Date actualRentStartTimeStart) {
        this.actualRentStartTimeStart = actualRentStartTimeStart;
    }

    public Date getActualRentStartTimeEnd() {
        return actualRentStartTimeEnd;
    }

    public void setActualRentStartTimeEnd(Date actualRentStartTimeEnd) {
        this.actualRentStartTimeEnd = actualRentStartTimeEnd;
    }

    public Date getActualRentEndTimeStart() {
        return actualRentEndTimeStart;
    }

    public void setActualRentEndTimeStart(Date actualRentEndTimeStart) {
        this.actualRentEndTimeStart = actualRentEndTimeStart;
    }

    public Date getActualRentEndTimeEnd() {
        return actualRentEndTimeEnd;
    }

    public void setActualRentEndTimeEnd(Date actualRentEndTimeEnd) {
        this.actualRentEndTimeEnd = actualRentEndTimeEnd;
    }

    public Integer getPlanRentSpanStart() {
        return planRentSpanStart;
    }

    public void setPlanRentSpanStart(Integer planRentSpanStart) {
        this.planRentSpanStart = planRentSpanStart;
    }

    public Integer getPlanRentSpanEnd() {
        return planRentSpanEnd;
    }

    public void setPlanRentSpanEnd(Integer planRentSpanEnd) {
        this.planRentSpanEnd = planRentSpanEnd;
    }

    public Integer getActualRentSpanStart() {
        return actualRentSpanStart;
    }

    public void setActualRentSpanStart(Integer actualRentSpanStart) {
        this.actualRentSpanStart = actualRentSpanStart;
    }

    public Integer getActualRentSpanEnd() {
        return actualRentSpanEnd;
    }

    public void setActualRentSpanEnd(Integer actualRentSpanEnd) {
        this.actualRentSpanEnd = actualRentSpanEnd;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("rentId", getRentId())
            .append("rentNumber", getRentNumber())
            .append("deviceId", getDeviceId())
            .append("typeName", getTypeName())
            .append("deviceSerialNumber", getDeviceSerialNumber())
            .append("modeName", getModeName())
            .append("unit", getUnit())
            .append("deviceNote", getDeviceNote())
            .append("planRentStartTime", getPlanRentStartTime())
            .append("actualRentStartTime", getActualRentStartTime())
            .append("planRentEndTime", getPlanRentEndTime())
            .append("actualRentEndTime", getActualRentEndTime())
            .append("planRentSpan", getPlanRentSpan())
            .append("actualRentSpan", getActualRentSpan())
            .append("note", getNote())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("valid", getValid())
            .toString();
    }
}
